using System;

namespace CSharpPro
{
    // 作业功能管理类
    public static partial class Demo
    {
        // 作业1：三个整数由小到大输出
        public static void SortThreeNumbers()
        {
            Console.WriteLine("\n--- 三个整数排序 ---");
            Console.Write("请输入第一个整数：");
            int x = int.Parse(Console.ReadLine());
            Console.Write("请输入第二个整数：");
            int y = int.Parse(Console.ReadLine());
            Console.Write("请输入第三个整数：");
            int z = int.Parse(Console.ReadLine());

            int min = Math.Min(Math.Min(x, y), z);
            int max   = Math.Max(Math.Max(x, y), z);
            int mid = x + y + z - min - max;
            Console.WriteLine($"由小到大排序：{min} {mid} {max}");
        }

        // 作业2：打印1-100特殊数字并求和
        public static void PrintSpecialNumbers()
        {
            Console.WriteLine("\n--- 1-100特殊数字（非7的倍数且不含7）---");
            int sum = 0;
            for (int i = 1; i <= 100; i++)
            {
                if (i % 7 != 0 && !i.ToString().Contains("7"))
                {
                    Console.Write(i + " ");
                    sum += i;
                }
            }
            Console.WriteLine($"\n这些数字的和：{sum}");
        }

        // 作业3：打印九九乘法表
        public static void PrintMultiplicationTable()
        {
            Console.WriteLine("\n--- 九九乘法表 ---");
            for (int i = 1; i <= 9; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    Console.Write($"{j}×{i}={i * j}\t");
                }
                Console.WriteLine();
            }
        }

        // 作业4：求1000以内的完数
        public static void FindPerfectNumbers()
        {
            Console.WriteLine("\n--- 1000以内的完数 ---");
            for (int i = 2; i < 1000; i++)
            {
                int sum = 1;
                for (int j = 2; j <= i / 2; j++)
                {
                    if (i % j == 0) sum += j;
                }
                if (sum == i) Console.WriteLine(i);
            }
        }

        // 作业5：数字位数判断及逆序打印
        public static void AnalyzeNumber()
        {
            Console.WriteLine("\n--- 数字分析 ---");
            Console.Write("请输入一个正整数：");
            if (!int.TryParse(Console.ReadLine(), out int num) || num <= 0)
            {
                Console.WriteLine("输入无效！");
                return;
            }

            int temp = num, digitCount = 0;
            while (temp > 0) { temp /= 10; digitCount++; }
            Console.WriteLine($"这是{digitCount}位数");

            temp = num;
            Console.Write("逆序输出：");
            while (temp > 0) { Console.Write(temp % 10); temp /= 10; }
            Console.WriteLine();
        }

        // 作业6：打印菱形
        public static void PrintDiamond()
        {
            Console.WriteLine("\n--- 打印菱形 ---");
            Console.Write("请输入菱形行数（奇数）：");
            if (!int.TryParse(Console.ReadLine(), out int n) || n % 2 == 0 || n <= 0)
            {
                Console.WriteLine("输入无效！");
                return;
            }

            int half = n / 2;
            for (int i = 0; i <= half; i++)
            {
                Console.Write(new string(' ', half - i));
                Console.WriteLine(new string('*', 2 * i + 1));
            }
            for (int i = half - 1; i >= 0; i--)
            {
                Console.Write(new string(' ', half - i));
                Console.WriteLine(new string('*', 2 * i + 1));
            }
        }
    }
}
  

